"""
1.def关键字、函数名、括号、参数、冒号
2.函数说明--文档字符串（按2次双引号，调出3个双引号的代码段注释，然后enter键）
3.关于return表达式：表示函数的结束，返回给调用方；return可以没有可以没有；没有return或者不写return相当于返回None
"""

def func1(a, b, c):
    """

    :param num1:
    :param num2:3个双引号的
    :param num3:
    :return:
    """
    print("参数a", a)
    print("参数b", b)
    print("参数c", c)

# func1(1,2,3)
"""
默认参数
"""
def func2(a=1):
    print("参数值是：", a)

# func2()
# func2(2)
"""
关键字参数
"""
def func3(a, b, c, d):
    print("参数a的值：", a)
    print("参数b的值：", b)
    print("参数c的值：", c)
    print("参数d的值：", d)
# func3(a=1,b=2,c=3,d=5)
# func3(b=1,c=2,d=5,a=10)

# func3(b=1,c=2,c=3,10) 会报错
"""
特殊参数
了解即可
"""
def func4(a, b, c, *, d):
    print("参数a的值：", a)
    print("参数b的值：", b)
    print("参数c的值：", c)
    print("参数d的值：", d)

# func4(1,2,3,d=-1)
# func4(2,3,4,5) 报错，不是关键字传参

"""
lambda表达式

"""
func5 = lambda x: x * 2
print(func5(5))

#等同于下面的函数
def func6(x):
    return x*2
print(func6(5))

func7 =lambda x,y:x+y
#等同于
def func8(x,y):
    return x+y
